/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package SubsistemaPaciente.programaMedico;

import SubsistemaPaciente.DialogoInfoPaciente;
import SubsitemaAgenda.DialogoAgregarCita;
import Usuario.DialogoInfoUsuarioProfesional;
import Usuario.Usuario;
import clienteSandraParada.Login;
import com.l2fprod.common.swing.renderer.DefaultCellRenderer;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.print.Book;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterJob;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import service.Establecimiento;

/**
 *
 * @author Mario
 */
public class DialogoInfoProgramaMedicoFonasa extends java.awt.Dialog {

    private ProgramaMedicoFonasa programa;
    private boolean dispose = false;
    public service.ProgramaMedicoFonasa sp;
    private DecimalFormat df = new DecimalFormat("###,###");

    public DialogoInfoProgramaMedicoFonasa(java.awt.Frame parent, boolean modal, ProgramaMedicoFonasa programa) {
        super(parent, modal);
        this.programa = programa;
        initComponents();
        setIconImage(new ImageIcon(getClass().getResource("/GUI/Img/logo2.png")).getImage());
        dialogoEstablecimientoOProfesional.setIconImage(new ImageIcon(getClass().getResource("/GUI/Img/logo2.png")).getImage());
        dialogoEstablecimientoOProfesional.setTitle("Seleccione");
        DefaultTableCellRenderer tcr = new DefaultCellRenderer();
        tcr.setHorizontalAlignment(SwingConstants.CENTER);
        contenedorPrestaciones.getColumnModel().getColumn(1).setCellRenderer(tcr);
        contenedorPrestaciones.getColumnModel().getColumn(2).setCellRenderer(tcr);
        contenedorPrestaciones.getColumnModel().getColumn(3).setCellRenderer(tcr);
        contenedorPrestaciones.getColumnModel().getColumn(4).setCellRenderer(tcr);
        contenedorPrestaciones.getColumnModel().getColumn(5).setCellRenderer(tcr);
        rutFocusLost();
        numeroDiasFocusLost();
        //grupoNivelEstablecimientoFocusLost();
        cargarCodigos();
        campoPrestacion.setEnabled(false);
        campoFechaDesde.setDate(new Date());
        ocultarColumna(0);
        //ocultarColumna(6);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        DialogoVer = new javax.swing.JDialog();
        botonImprimir = new javax.swing.JButton();
        jScrollPane3 = new javax.swing.JScrollPane();
        jPanel6 = new javax.swing.JPanel();
        jScrollPane2 = new javax.swing.JScrollPane();
        tablaContenedoraPrestaciones = new javax.swing.JTable();
        etiquetaRutAfiliado = new javax.swing.JLabel();
        EtiquetaApellidoPaternoAfiliado = new javax.swing.JLabel();
        etiquetaApellidoMaternoAfiliado = new javax.swing.JLabel();
        etiquetaNombresAfiliado = new javax.swing.JLabel();
        EtiquetaTelefonoAfiliado = new javax.swing.JLabel();
        etiquetaCalle = new javax.swing.JLabel();
        etiquetaNumero = new javax.swing.JLabel();
        etiquetaPoblacion = new javax.swing.JLabel();
        etiquetaComuna = new javax.swing.JLabel();
        etiquetaCiudad = new javax.swing.JLabel();
        etiquetaRutPaciente = new javax.swing.JLabel();
        etiquetaApellidoPaternoPaciente = new javax.swing.JLabel();
        etiquetaApellidoMaternoPaciente = new javax.swing.JLabel();
        etiquetaNombresPaciente = new javax.swing.JLabel();
        etiquetaEdad = new javax.swing.JLabel();
        etiquetaSexo = new javax.swing.JLabel();
        etiquetaRutEstablecimiento = new javax.swing.JLabel();
        etiquetaGrupoNivelEstablecimiento = new javax.swing.JLabel();
        etiquetaNombreEstablecimiento = new javax.swing.JLabel();
        etiquetaFechaDesde = new javax.swing.JLabel();
        etiquetaFechaHasta = new javax.swing.JLabel();
        etiquetaNumeroDias = new javax.swing.JLabel();
        etiquetaRutProfesional = new javax.swing.JLabel();
        etiquetaGrupoNivelProfesional = new javax.swing.JLabel();
        etiquetaNombreProfesional = new javax.swing.JLabel();
        etiquetaDiagnostico = new javax.swing.JLabel();
        jPanel7 = new javax.swing.JPanel();
        dialogoEstablecimientoOProfesional = new javax.swing.JDialog();
        radioBotonEstablecimiento = new javax.swing.JRadioButton();
        radioBotonProfesional = new javax.swing.JRadioButton();
        botonAceptarEstablecimientoOProfesional = new javax.swing.JButton();
        botonCancelarEstablecimientoOProfesional = new javax.swing.JButton();
        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        campoNumeroPrograma = new componentes.Numeros();
        jPanel2 = new javax.swing.JPanel();
        jLabel12 = new javax.swing.JLabel();
        jLabel13 = new javax.swing.JLabel();
        jLabel34 = new javax.swing.JLabel();
        campoRutPaciente = new componentes.Rut();
        jLabel35 = new javax.swing.JLabel();
        jLabel37 = new javax.swing.JLabel();
        jLabel39 = new javax.swing.JLabel();
        campoCalle = new javax.swing.JTextField();
        jLabel28 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        campoRutAfiliado = new componentes.Rut();
        jLabel5 = new javax.swing.JLabel();
        campoNumero = new javax.swing.JTextField();
        jLabel29 = new javax.swing.JLabel();
        jLabel31 = new javax.swing.JLabel();
        campoApelldoPaternoAfiliado = new javax.swing.JTextField();
        campoPoblacion = new javax.swing.JTextField();
        jLabel32 = new javax.swing.JLabel();
        campoComuna = new javax.swing.JTextField();
        campoApellidoMaternoAfiliado = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        campoNombresAfiliado = new javax.swing.JTextField();
        campoCiudad = new javax.swing.JTextField();
        jLabel33 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        campoTelefono = new javax.swing.JTextField();
        campoApellidoPaternoPaciente = new javax.swing.JTextField();
        campoApellidoMaternoPaciente = new javax.swing.JTextField();
        campoNombresPaciente = new javax.swing.JTextField();
        campoEdadPaciente = new javax.swing.JTextField();
        campoSexoPaciente = new javax.swing.JTextField();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jPanel3 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        campoRutEstablecimiento = new componentes.Rut();
        jLabel17 = new javax.swing.JLabel();
        jLabel18 = new javax.swing.JLabel();
        jLabel19 = new javax.swing.JLabel();
        jLabel20 = new javax.swing.JLabel();
        jLabel21 = new javax.swing.JLabel();
        campoFechaDesde = new com.toedter.calendar.JDateChooser();
        campoFechaHasta = new com.toedter.calendar.JDateChooser();
        jLabel22 = new javax.swing.JLabel();
        campoNombreEstablecimiento = new javax.swing.JTextField();
        campoGrupoNivelEstablecimiento = new componentes.Numeros();
        campoNumeroDias = new componentes.Numeros();
        jPanel4 = new javax.swing.JPanel();
        campoRutProfesional = new componentes.Rut();
        jLabel4 = new javax.swing.JLabel();
        jLabel23 = new javax.swing.JLabel();
        jLabel24 = new javax.swing.JLabel();
        jLabel25 = new javax.swing.JLabel();
        campoDiagnosticoProfesional = new javax.swing.JTextField();
        campoNombreProfesional = new javax.swing.JTextField();
        campoGrupoNivelProfesional = new componentes.Numeros();
        jLabel26 = new javax.swing.JLabel();
        jLabel38 = new javax.swing.JLabel();
        botonAceptar = new javax.swing.JButton();
        botonCancelar = new javax.swing.JButton();
        campoMensajeria = new javax.swing.JLabel();
        jPanel5 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        contenedorPrestaciones = new javax.swing.JTable();
        botonAgregarPrestacion = new javax.swing.JButton();
        botonEliminarPrestacion = new javax.swing.JButton();
        jLabel41 = new javax.swing.JLabel();
        campoNivel = new componentes.Numeros();
        jLabel43 = new javax.swing.JLabel();
        jLabel45 = new javax.swing.JLabel();
        campoCodigo = new javax.swing.JComboBox();
        jLabel47 = new javax.swing.JLabel();
        campoCantidad = new componentes.Numeros();
        jLabel49 = new javax.swing.JLabel();
        jLabel51 = new javax.swing.JLabel();
        campoPrestacion = new javax.swing.JTextField();
        jLabel53 = new javax.swing.JLabel();
        mensajeriaInformacion1 = new javax.swing.JLabel();
        contenedorFonasa = new javax.swing.JLabel();
        jLabel55 = new javax.swing.JLabel();

        botonImprimir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/GUI/Img/Iconos16X16/Imprimir.png"))); // NOI18N
        botonImprimir.setText("Imprimir");
        botonImprimir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonImprimirActionPerformed(evt);
            }
        });

        jPanel6.setBackground(new java.awt.Color(255, 255, 255));

        jScrollPane2.setBackground(new java.awt.Color(255, 255, 255));
        jScrollPane2.setBorder(null);
        jScrollPane2.setForeground(new java.awt.Color(255, 255, 255));
        jScrollPane2.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        jScrollPane2.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
        jScrollPane2.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

        tablaContenedoraPrestaciones.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Nivel", "Codigo de prestación", "Cant.", "Prestación", "Rut prestador"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        tablaContenedoraPrestaciones.setGridColor(new java.awt.Color(255, 255, 255));
        jScrollPane2.setViewportView(tablaContenedoraPrestaciones);
        tablaContenedoraPrestaciones.getColumnModel().getColumn(0).setMinWidth(40);
        tablaContenedoraPrestaciones.getColumnModel().getColumn(0).setPreferredWidth(40);
        tablaContenedoraPrestaciones.getColumnModel().getColumn(0).setMaxWidth(40);
        tablaContenedoraPrestaciones.getColumnModel().getColumn(1).setMinWidth(130);
        tablaContenedoraPrestaciones.getColumnModel().getColumn(1).setPreferredWidth(130);
        tablaContenedoraPrestaciones.getColumnModel().getColumn(1).setMaxWidth(130);
        tablaContenedoraPrestaciones.getColumnModel().getColumn(2).setMinWidth(55);
        tablaContenedoraPrestaciones.getColumnModel().getColumn(2).setPreferredWidth(55);
        tablaContenedoraPrestaciones.getColumnModel().getColumn(2).setMaxWidth(55);
        tablaContenedoraPrestaciones.getColumnModel().getColumn(4).setMinWidth(180);
        tablaContenedoraPrestaciones.getColumnModel().getColumn(4).setPreferredWidth(180);
        tablaContenedoraPrestaciones.getColumnModel().getColumn(4).setMaxWidth(180);

        etiquetaRutAfiliado.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaRutAfiliado.setText("rutAfiliado");

        EtiquetaApellidoPaternoAfiliado.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        EtiquetaApellidoPaternoAfiliado.setText("apellidoPaterno");

        etiquetaApellidoMaternoAfiliado.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaApellidoMaternoAfiliado.setText("apellidoMaterno");

        etiquetaNombresAfiliado.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaNombresAfiliado.setText("nombres");

        EtiquetaTelefonoAfiliado.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        EtiquetaTelefonoAfiliado.setText("telefono");

        etiquetaCalle.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaCalle.setText("calle");

        etiquetaNumero.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaNumero.setText("numero");

        etiquetaPoblacion.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaPoblacion.setText("comuna");

        etiquetaComuna.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaComuna.setText("poblacion");

        etiquetaCiudad.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaCiudad.setText("ciudad");

        etiquetaRutPaciente.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaRutPaciente.setText("rutpaciente");

        etiquetaApellidoPaternoPaciente.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaApellidoPaternoPaciente.setText("apellidoPaterno");

        etiquetaApellidoMaternoPaciente.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaApellidoMaternoPaciente.setText("apellidoMaterno");

        etiquetaNombresPaciente.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaNombresPaciente.setText("Nombres");

        etiquetaEdad.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaEdad.setText("Edad");

        etiquetaSexo.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaSexo.setText("Sexo");

        etiquetaRutEstablecimiento.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaRutEstablecimiento.setText("rutEstablecimiento");

        etiquetaGrupoNivelEstablecimiento.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaGrupoNivelEstablecimiento.setText("grupo");

        etiquetaNombreEstablecimiento.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaNombreEstablecimiento.setText("nombre");

        etiquetaFechaDesde.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaFechaDesde.setText("05");

        etiquetaFechaHasta.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaFechaHasta.setText("05");

        etiquetaNumeroDias.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaNumeroDias.setText("N° Días");

        etiquetaRutProfesional.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaRutProfesional.setText("rutProfesional");

        etiquetaGrupoNivelProfesional.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaGrupoNivelProfesional.setText("grupo");

        etiquetaNombreProfesional.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaNombreProfesional.setText("Nombre");

        etiquetaDiagnostico.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        etiquetaDiagnostico.setText("diagnostico");

        jPanel7.setBackground(new java.awt.Color(255, 255, 255));

        javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
        jPanel7.setLayout(jPanel7Layout);
        jPanel7Layout.setHorizontalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );
        jPanel7Layout.setVerticalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 153, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 733, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 166, Short.MAX_VALUE))
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addComponent(etiquetaDiagnostico, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGap(227, 227, 227))
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel6Layout.createSequentialGroup()
                                .addComponent(etiquetaRutAfiliado, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(59, 59, 59)
                                .addComponent(EtiquetaApellidoPaternoAfiliado, javax.swing.GroupLayout.PREFERRED_SIZE, 161, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(etiquetaApellidoMaternoAfiliado, javax.swing.GroupLayout.PREFERRED_SIZE, 155, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(etiquetaNombresAfiliado, javax.swing.GroupLayout.PREFERRED_SIZE, 155, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel6Layout.createSequentialGroup()
                                .addComponent(etiquetaCalle, javax.swing.GroupLayout.PREFERRED_SIZE, 156, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(18, 18, 18)
                                .addComponent(etiquetaNumero, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel6Layout.createSequentialGroup()
                                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel6Layout.createSequentialGroup()
                                        .addComponent(etiquetaRutProfesional, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(72, 72, 72)
                                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(jPanel6Layout.createSequentialGroup()
                                                .addComponent(etiquetaGrupoNivelProfesional)
                                                .addGap(30, 30, 30)
                                                .addComponent(etiquetaNombreProfesional, javax.swing.GroupLayout.PREFERRED_SIZE, 400, javax.swing.GroupLayout.PREFERRED_SIZE))
                                            .addGroup(jPanel6Layout.createSequentialGroup()
                                                .addGap(155, 155, 155)
                                                .addComponent(etiquetaComuna, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addGap(18, 18, 18)
                                                .addComponent(etiquetaPoblacion, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                                .addComponent(etiquetaCiudad, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addGap(9, 9, 9))))
                                    .addGroup(jPanel6Layout.createSequentialGroup()
                                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(jPanel6Layout.createSequentialGroup()
                                                .addGap(468, 468, 468)
                                                .addComponent(etiquetaFechaHasta, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE))
                                            .addGroup(jPanel6Layout.createSequentialGroup()
                                                .addGap(315, 315, 315)
                                                .addComponent(etiquetaFechaDesde, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                        .addGap(138, 138, 138)))
                                .addComponent(etiquetaNumeroDias, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
                .addContainerGap())
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup()
                .addGap(0, 0, Short.MAX_VALUE)
                .addComponent(EtiquetaTelefonoAfiliado, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(263, 263, 263))
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addGap(32, 32, 32)
                        .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addComponent(etiquetaRutPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(61, 61, 61)
                        .addComponent(etiquetaApellidoPaternoPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, 143, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(etiquetaApellidoMaternoPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(etiquetaNombresPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(etiquetaEdad)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(etiquetaSexo))
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addComponent(etiquetaRutEstablecimiento)
                        .addGap(75, 75, 75)
                        .addComponent(etiquetaGrupoNivelEstablecimiento)
                        .addGap(34, 34, 34)
                        .addComponent(etiquetaNombreEstablecimiento, javax.swing.GroupLayout.PREFERRED_SIZE, 419, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel6Layout.setVerticalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel6Layout.createSequentialGroup()
                .addContainerGap(108, Short.MAX_VALUE)
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(etiquetaRutAfiliado)
                    .addComponent(EtiquetaApellidoPaternoAfiliado)
                    .addComponent(etiquetaApellidoMaternoAfiliado)
                    .addComponent(etiquetaNombresAfiliado))
                .addGap(18, 18, 18)
                .addComponent(EtiquetaTelefonoAfiliado)
                .addGap(25, 25, 25)
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(etiquetaCalle)
                    .addComponent(etiquetaCiudad)
                    .addComponent(etiquetaPoblacion)
                    .addComponent(etiquetaNumero)
                    .addComponent(etiquetaComuna))
                .addGap(18, 18, 18)
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(etiquetaRutPaciente)
                    .addGroup(jPanel6Layout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(etiquetaApellidoMaternoPaciente)
                            .addComponent(etiquetaApellidoPaternoPaciente)
                            .addComponent(etiquetaNombresPaciente)
                            .addComponent(etiquetaEdad)
                            .addComponent(etiquetaSexo))))
                .addGap(30, 30, 30)
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(etiquetaRutEstablecimiento)
                    .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(etiquetaNombreEstablecimiento)
                        .addComponent(etiquetaGrupoNivelEstablecimiento)))
                .addGap(18, 18, 18)
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(etiquetaFechaDesde)
                    .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(etiquetaFechaHasta)
                        .addComponent(etiquetaNumeroDias)))
                .addGap(34, 34, 34)
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(etiquetaRutProfesional)
                    .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(etiquetaGrupoNivelProfesional)
                        .addComponent(etiquetaNombreProfesional)))
                .addGap(18, 18, 18)
                .addComponent(etiquetaDiagnostico)
                .addGap(26, 26, 26)
                .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(71, 71, 71))
        );

        jScrollPane3.setViewportView(jPanel6);

        javax.swing.GroupLayout DialogoVerLayout = new javax.swing.GroupLayout(DialogoVer.getContentPane());
        DialogoVer.getContentPane().setLayout(DialogoVerLayout);
        DialogoVerLayout.setHorizontalGroup(
            DialogoVerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(DialogoVerLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(DialogoVerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(botonImprimir)
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 761, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        DialogoVerLayout.setVerticalGroup(
            DialogoVerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(DialogoVerLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(botonImprimir)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 773, Short.MAX_VALUE)
                .addContainerGap())
        );

        dialogoEstablecimientoOProfesional.setMinimumSize(new java.awt.Dimension(229, 100));

        buttonGroup1.add(radioBotonEstablecimiento);
        radioBotonEstablecimiento.setText("Establecimiento");

        buttonGroup1.add(radioBotonProfesional);
        radioBotonProfesional.setText("Profesional");

        botonAceptarEstablecimientoOProfesional.setText("Aceptar");
        botonAceptarEstablecimientoOProfesional.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonAceptarEstablecimientoOProfesionalActionPerformed(evt);
            }
        });

        botonCancelarEstablecimientoOProfesional.setText("Cancelar");
        botonCancelarEstablecimientoOProfesional.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonCancelarEstablecimientoOProfesionalActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout dialogoEstablecimientoOProfesionalLayout = new javax.swing.GroupLayout(dialogoEstablecimientoOProfesional.getContentPane());
        dialogoEstablecimientoOProfesional.getContentPane().setLayout(dialogoEstablecimientoOProfesionalLayout);
        dialogoEstablecimientoOProfesionalLayout.setHorizontalGroup(
            dialogoEstablecimientoOProfesionalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(dialogoEstablecimientoOProfesionalLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(radioBotonEstablecimiento)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(radioBotonProfesional)
                .addContainerGap(45, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, dialogoEstablecimientoOProfesionalLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(botonAceptarEstablecimientoOProfesional)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(botonCancelarEstablecimientoOProfesional)
                .addContainerGap())
        );
        dialogoEstablecimientoOProfesionalLayout.setVerticalGroup(
            dialogoEstablecimientoOProfesionalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(dialogoEstablecimientoOProfesionalLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(dialogoEstablecimientoOProfesionalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(radioBotonEstablecimiento)
                    .addComponent(radioBotonProfesional))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(dialogoEstablecimientoOProfesionalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(botonAceptarEstablecimientoOProfesional)
                    .addComponent(botonCancelarEstablecimientoOProfesional))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                closeDialog(evt);
            }
        });

        jLabel1.setText("Programa Nº");

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Asegurado"));

        jLabel12.setText("Edad:");

        jLabel13.setText("Sexo:");

        jLabel34.setText("Rut paciente:");

        jLabel35.setText("Apellido paterno:");

        jLabel37.setText("Apellido materno:");

        jLabel39.setText("Nombres:");

        jLabel28.setText("Calle:");
        jLabel28.setToolTipText("");

        jLabel2.setText("Rut afiliado:");

        jLabel5.setText("Apellido paterno:");

        jLabel29.setText("Nº:");
        jLabel29.setToolTipText("");

        jLabel31.setText("Población/Villa:");
        jLabel31.setToolTipText("");

        jLabel32.setText("Comuna:");
        jLabel32.setToolTipText("");

        jLabel6.setText("Apellido materno:");

        jLabel7.setText("Nombres:");

        jLabel33.setText("Ciudad:");
        jLabel33.setToolTipText("");

        jLabel11.setText("Teléfono:");

        jLabel9.setText("*");

        jLabel10.setText("*");

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jLabel2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoRutAfiliado, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel9)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 7, Short.MAX_VALUE)
                        .addComponent(jLabel5)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoApelldoPaternoAfiliado, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel6)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoApellidoMaternoAfiliado, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel7)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoNombresAfiliado, javax.swing.GroupLayout.PREFERRED_SIZE, 175, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(62, Short.MAX_VALUE))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addComponent(jLabel34)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(campoRutPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(17, 17, 17)
                                .addComponent(jLabel35)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(campoApellidoPaternoPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel37)
                                    .addGroup(jPanel2Layout.createSequentialGroup()
                                        .addGap(88, 88, 88)
                                        .addComponent(campoApellidoMaternoPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE))))
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addComponent(jLabel28)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(campoCalle, javax.swing.GroupLayout.PREFERRED_SIZE, 102, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel2Layout.createSequentialGroup()
                                        .addGap(19, 19, 19)
                                        .addComponent(jLabel10)
                                        .addGap(439, 439, 439)
                                        .addComponent(jLabel39)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(campoNombresPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jLabel12)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(campoEdadPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jLabel13)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(campoSexoPaciente, javax.swing.GroupLayout.DEFAULT_SIZE, 77, Short.MAX_VALUE))
                                    .addGroup(jPanel2Layout.createSequentialGroup()
                                        .addGap(12, 12, 12)
                                        .addComponent(jLabel29)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(campoNumero, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(jLabel31)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(campoPoblacion, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(jLabel32)
                                        .addGap(5, 5, 5)
                                        .addComponent(campoComuna, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addComponent(jLabel33)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(campoCiudad, javax.swing.GroupLayout.PREFERRED_SIZE, 131, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jLabel11)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(campoTelefono, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(0, 27, Short.MAX_VALUE)))))
                        .addContainerGap())))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(5, 5, 5)
                        .addComponent(jLabel2))
                    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel5)
                            .addComponent(jLabel6)
                            .addComponent(jLabel7)
                            .addComponent(campoApelldoPaternoAfiliado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(campoApellidoMaternoAfiliado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(campoNombresAfiliado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel9))
                        .addComponent(campoRutAfiliado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel29)
                    .addComponent(campoCalle, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel28)
                    .addComponent(jLabel31, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(campoPoblacion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(campoNumero, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel32)
                    .addComponent(campoComuna, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel33)
                    .addComponent(campoCiudad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel11)
                    .addComponent(campoTelefono, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(5, 5, 5)
                        .addComponent(jLabel34))
                    .addComponent(campoRutPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel35)
                        .addComponent(jLabel37)
                        .addComponent(jLabel39)
                        .addComponent(jLabel12)
                        .addComponent(jLabel13)
                        .addComponent(campoApellidoPaternoPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(campoApellidoMaternoPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(campoNombresPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(campoEdadPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(campoSexoPaciente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel10)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Establecimiento"));

        jLabel3.setText("Rut establecimiento:");

        jLabel17.setText("Grupo nivel:");

        jLabel18.setText("Nombre establecimiento:");

        jLabel19.setText("Fecha hospitalización o tratamiento:");

        jLabel20.setText("Desde:");

        jLabel21.setText("Hasta:");

        campoFechaDesde.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                campoFechaDesdePropertyChange(evt);
            }
        });

        campoFechaHasta.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                campoFechaHastaPropertyChange(evt);
            }
        });

        jLabel22.setText("Nº días:");

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addComponent(jLabel19)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel20)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoFechaDesde, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(24, 24, 24)
                        .addComponent(jLabel21)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoFechaHasta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(24, 24, 24)
                        .addComponent(jLabel22)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoNumeroDias, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 381, Short.MAX_VALUE))
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addComponent(jLabel3)
                        .addGap(5, 5, 5)
                        .addComponent(campoRutEstablecimiento, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(14, 14, 14)
                        .addComponent(jLabel17)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoGrupoNivelEstablecimiento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel18)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoNombreEstablecimiento, javax.swing.GroupLayout.DEFAULT_SIZE, 515, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addGap(3, 3, 3)
                        .addComponent(jLabel3))
                    .addComponent(campoRutEstablecimiento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel17)
                        .addComponent(jLabel18)
                        .addComponent(campoNombreEstablecimiento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(campoGrupoNivelEstablecimiento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel19)
                        .addComponent(jLabel20))
                    .addComponent(campoFechaDesde, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(campoFechaHasta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel22)
                    .addComponent(jLabel21)
                    .addComponent(campoNumeroDias, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(12, Short.MAX_VALUE))
        );

        jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Profesional tratante"));

        jLabel4.setText("Rut profesional:");

        jLabel23.setText("Grupo nivel:");

        jLabel24.setText("Nombre:");

        jLabel25.setText("Diagnostico");

        jLabel26.setText("*");

        jLabel38.setText("*");

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addComponent(jLabel4)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoRutProfesional, javax.swing.GroupLayout.PREFERRED_SIZE, 82, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel26, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel23)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoGrupoNivelProfesional, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel24)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoNombreProfesional, javax.swing.GroupLayout.DEFAULT_SIZE, 604, Short.MAX_VALUE))
                    .addGroup(jPanel4Layout.createSequentialGroup()
                        .addComponent(jLabel25)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoDiagnosticoProfesional, javax.swing.GroupLayout.DEFAULT_SIZE, 873, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel38, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel23)
                        .addComponent(jLabel24)
                        .addComponent(campoNombreProfesional, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel26))
                    .addComponent(campoRutProfesional, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4)
                    .addComponent(campoGrupoNivelProfesional, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel25)
                    .addComponent(campoDiagnosticoProfesional, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel38))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        botonAceptar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/GUI/Img/Iconos16X16/Agregar.png"))); // NOI18N
        botonAceptar.setText("Agregar");
        botonAceptar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonAceptarActionPerformed(evt);
            }
        });

        botonCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/GUI/Img/Iconos16X16/Cancelar.png"))); // NOI18N
        botonCancelar.setText("Cancelar");
        botonCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonCancelarActionPerformed(evt);
            }
        });

        campoMensajeria.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        campoMensajeria.setText("Area de mensajeria");

        jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Prestaciones"));

        contenedorPrestaciones.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "ID", "Nivel", "Codigo de prestación", "Cantidad", "Prestación", "Rut prestación", "Valor"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Long.class, java.lang.Integer.class, java.lang.String.class, java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jScrollPane1.setViewportView(contenedorPrestaciones);

        botonAgregarPrestacion.setIcon(new javax.swing.ImageIcon(getClass().getResource("/GUI/Img/Iconos16X16/Agregar.png"))); // NOI18N
        botonAgregarPrestacion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonAgregarPrestacionActionPerformed(evt);
            }
        });

        botonEliminarPrestacion.setIcon(new javax.swing.ImageIcon(getClass().getResource("/GUI/Img/Iconos16X16/Eliminar.png"))); // NOI18N
        botonEliminarPrestacion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonEliminarPrestacionActionPerformed(evt);
            }
        });

        jLabel41.setText("Nivel:");

        jLabel43.setText("*");

        jLabel45.setText("Código de prestación:");

        campoCodigo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                campoCodigoActionPerformed(evt);
            }
        });

        jLabel47.setText("*");

        jLabel49.setText("*");

        jLabel51.setText("Cantidad:");

        jLabel53.setText("Prestación:");

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel5Layout.createSequentialGroup()
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 839, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(botonAgregarPrestacion)
                            .addComponent(botonEliminarPrestacion)))
                    .addGroup(jPanel5Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel41)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoNivel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel43)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel45)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel47)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel51)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoCantidad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel49)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel53)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoPrestacion, javax.swing.GroupLayout.PREFERRED_SIZE, 169, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(0, 78, Short.MAX_VALUE))
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabel41)
                    .addComponent(campoNivel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel43)
                        .addComponent(jLabel45)
                        .addComponent(campoCodigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel47)
                        .addComponent(jLabel51))
                    .addComponent(campoCantidad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel49)
                        .addComponent(jLabel53)
                        .addComponent(campoPrestacion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 14, Short.MAX_VALUE)
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanel5Layout.createSequentialGroup()
                        .addComponent(botonAgregarPrestacion)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(botonEliminarPrestacion))))
        );

        mensajeriaInformacion1.setText("Campos obligatorios *");

        contenedorFonasa.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        contenedorFonasa.setIcon(new javax.swing.ImageIcon(getClass().getResource("/GUI/Img/fonasa.png"))); // NOI18N

        jLabel55.setText("*");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(campoMensajeria, javax.swing.GroupLayout.DEFAULT_SIZE, 984, Short.MAX_VALUE)
                    .addComponent(jPanel3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel4, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addComponent(mensajeriaInformacion1, javax.swing.GroupLayout.PREFERRED_SIZE, 227, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 565, Short.MAX_VALUE)
                        .addComponent(botonAceptar)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(botonCancelar))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addComponent(contenedorFonasa)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 516, Short.MAX_VALUE)
                        .addComponent(jLabel1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(campoNumeroPrograma, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel55)
                        .addContainerGap())))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(campoNumeroPrograma, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel1)
                            .addComponent(jLabel55)))
                    .addComponent(contenedorFonasa, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(5, 5, 5)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(botonAceptar)
                    .addComponent(botonCancelar)
                    .addComponent(mensajeriaInformacion1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(campoMensajeria)
                .addGap(73, 73, 73))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 648, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    /**
     * Closes the dialog
     */
    private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog
        dispose = true;
        setVisible(false);
        dispose();
    }//GEN-LAST:event_closeDialog

    private void botonAceptarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonAceptarActionPerformed
        this.normalizarMensajeria();
        if (camposObligatoriosLlenos()) {
            
            if (botonAceptar.getText().equalsIgnoreCase("Guardar")) {                
                String anterior = "", posterior = "";
                if (sp != null) {
                    anterior = "Número: " + (String) (programa.contenedorProgramas.getValueAt(programa.contenedorProgramas.getSelectedRow(), 0)) + "\n" + "Rut afiliado: " + sp.getRutAfiliado() + "\n" + "Rut paciente: " + sp.getRutPaciente() + "\n"
                            + "Rut establecimiento: " + sp.getRutEstablecimiento() + "\n" + "Fecha desde: " + sp.getFechaDesde() + "\n"
                            + "Fecha hasta: " + sp.getFechaHasta() + "\n" + "Rut profesional: " + sp.getRutProfesional() + "\n" + "Grupo nivel profesional: " + sp.getGrupoNivelProfesional()
                            + "\n" + "Diagnóstico profesional: " + sp.getDiagnosticoProfesional();
                    posterior = "Número: " + campoNumeroPrograma.getNumeros().getText() + "\n" + "Rut afiliado: " + campoRutAfiliado.getRut().getText() + "\n" + "Rut paciente: " + campoRutPaciente.getRut().getText() + "\n"
                            + "Rut establecimiento: " + campoRutEstablecimiento.getRut().getText() + "\n" + "Fecha desde: " + campoFechaDesde.getDate() + "\n"
                            + "Fecha hasta: " + campoFechaHasta.getDate() + "\n" + "Rut profesional: " + campoRutProfesional.getRut().getText() + "\n" + "Grupo nivel profesional: " + campoGrupoNivelProfesional.getNumeros().getText()
                            + "\n" + "Diagnóstico profesional: " + campoDiagnosticoProfesional.getText();

                    calcularCantidadSesiones(sp);
                    
                    modificarProg(sp);
                    guardarPrestacionesMedicas();
                    registrar(Login.getUser(), "Programa médico", "Modificó programa FONASA: " + sp.getNumeroPrograma(), anterior, posterior);
                }
                if (programa != null) {
                    programa.actualizarTabla();
                }

                this.dispose();
            } else if (botonAceptar.getText().equalsIgnoreCase("Imprimir")) {
                service.Privilegios p = (service.Privilegios) cargarPrivilegios(Login.getUser().getRut());
                if (p.isImprimirProgramaMedicoFonasa()) {
                    llenarCamposImpresion();
                    tablaContenedoraPrestaciones.setTableHeader(null);
                    tablaContenedoraPrestaciones.setShowGrid(false);
                    tablaContenedoraPrestaciones.setIntercellSpacing(new Dimension(0, 0));
                    jScrollPane2.getViewport().setBackground(Color.WHITE);
                    jScrollPane2.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
                    DialogoVer.setTitle("Imprimir programa médico");
                    DialogoVer.setPreferredSize(new Dimension(786, 826));
                    DialogoVer.setMinimumSize(new Dimension(786, 826));
                    this.dispose();

                    DialogoVer.setVisible(true);

                    DialogoVer.setLocationRelativeTo(null);

                } else {
                    JOptionPane.showMessageDialog(this, "No tiene permisos para esta acción, \n contacte al administrador para más información");
                }

            } else if (botonAceptar.getText().equalsIgnoreCase("Agregar")) {
                service.ProgramaMedicoFonasa p = new service.ProgramaMedicoFonasa();
                p.setNumeroPrograma(campoNumeroPrograma.getNumeros().getText());
                p.setRutAfiliado(campoRutAfiliado.getRut().getText());
                p.setRutPaciente(campoRutPaciente.getRut().getText());
                p.setRutEstablecimiento(campoRutEstablecimiento.getRut().getText());
                if (campoFechaDesde.getDate() != null) {
                    p.setFechaDesde(new SimpleDateFormat("dd-MM-yyyy").format(campoFechaDesde.getDate()));
                }
                if (campoFechaHasta.getDate() != null) {
                    p.setFechaHasta(new SimpleDateFormat("dd-MM-yyyy").format(campoFechaHasta.getDate()));
                }
                p.setRutProfesional(campoRutProfesional.getRut().getText());
                p.setGrupoNivelProfesional(campoGrupoNivelProfesional.getNumero());
                p.setDiagnosticoProfesional(campoDiagnosticoProfesional.getText());
                p.setVisible(true);
                p.setValorTotal(this.calcularValorPrograma());
                calcularCantidadSesiones(p);
                guardarPrestacionesMedicas();
                agregarProgramaFonasa(p);
                String posterior = "";
                if (!p.getRutPaciente().equals("")) {
                    posterior = "Número: " + p.getNumeroPrograma() + "\n" + "Rut afiliado: " + p.getRutAfiliado() + "\n" + "Rut paciente: " + p.getRutPaciente() + "\n"
                            + "Rut establecimiento: " + p.getRutEstablecimiento() + "\n" + "Fecha desde: " + p.getFechaDesde() + "\n"
                            + "Fecha hasta: " + p.getFechaHasta() + "\n" + "Rut profesional: " + p.getRutProfesional() + "\n" + "Grupo nivel profesional: " + p.getGrupoNivelProfesional()
                            + "\n" + "Diagnóstico profesional: " + p.getDiagnosticoProfesional();
                } else {
                    posterior = "Número: " + p.getNumeroPrograma() + "\n" + "Rut afiliado: " + p.getRutAfiliado() + "\n" + "Rut paciente: " + p.getRutPaciente() + "\n"
                            + "Rut establecimiento: " + p.getRutEstablecimiento() + "\n" + "Fecha desde: " + p.getFechaDesde() + "\n"
                            + "Fecha hasta: " + p.getFechaHasta() + "\n" + "Rut profesional: " + p.getRutProfesional() + "\n" + "Grupo nivel profesional: " + p.getGrupoNivelProfesional()
                            + "\n" + "Diagnóstico profesional: " + p.getDiagnosticoProfesional();
                }
                registrar(Login.getUser(), "Programa médico", "Agregó programa FONASA: " + p.getNumeroPrograma(), "No aplica", posterior);
                if (programa != null) {
                    programa.actualizarTabla();
                }
                this.dispose();
            }
        }

    }//GEN-LAST:event_botonAceptarActionPerformed

    private void botonCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonCancelarActionPerformed
        this.dispose = true;
        this.dispose();
    }//GEN-LAST:event_botonCancelarActionPerformed

    private void botonAgregarPrestacionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonAgregarPrestacionActionPerformed
        if (camposObligatoriosPrestacionLlenos()) {
            DefaultTableModel model = (DefaultTableModel) contenedorPrestaciones.getModel();
            service.CodigosPrestaciones codpres = (service.CodigosPrestaciones)cargarCodigoPrestacion(campoCodigo.getSelectedItem()+"");
            String subtotal = (campoCantidad.getNumero() * Integer.parseInt(codpres.getValor().replace("$", "").replace(".", "")))+"";
            Object fila[] = {"", campoNivel.getNumero() + "", campoCodigo.getSelectedItem() + "", campoCantidad.getNumero() + "", campoPrestacion.getText() + "", campoRutProfesional.getRut().getText() + "" , subtotal};
            model.addRow(fila);
            cambiarEtiquetaMensajeria("Prestación agregada exitosamente", Color.black);
        } else {
            cambiarEtiquetaMensajeria("Campos obligatorios sin llenar", Color.red);
        }

    }//GEN-LAST:event_botonAgregarPrestacionActionPerformed

    private void botonEliminarPrestacionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonEliminarPrestacionActionPerformed
        DefaultTableModel model = (DefaultTableModel) contenedorPrestaciones.getModel();
        if (contenedorPrestaciones.getRowCount() != 0) {
            int confirmado = JOptionPane.showConfirmDialog(null, "¿Esta seguro de que quiere eliminar la prestación?");
            if (JOptionPane.OK_OPTION == confirmado) {
                if (!model.getValueAt(contenedorPrestaciones.getSelectedRow(), 0).equals("")) {
                    service.PrestacionMedica p = (service.PrestacionMedica) cargarPrestacionMedicaGeneral(new Long(Integer.parseInt((String) model.getValueAt(contenedorPrestaciones.getSelectedRow(), 0))));
                    String nuevo = "Código: " + p.getCodigo() + "\n" + "Cantidad: " + p.getCantidad() + "\n" + "Número programa: " + p.getNumeroPrograma() + "\n" + "Tipo programa: " + p.getTipoPrograma() + "\n" + "Nivel: " + p.getNivel();
                    registrar(Login.getUser(), "Programa médico", "Eliminó prestación código: " + p.getCodigo() + " a programa  FONASA: " + p.getNumeroPrograma(), "No aplica", nuevo);
                    eliminarPrestacionMedicaGeneral(new Long(Integer.parseInt((String) model.getValueAt(contenedorPrestaciones.getSelectedRow(), 0))));
                }
                model.removeRow(contenedorPrestaciones.getSelectedRow());
                cambiarEtiquetaMensajeria("Prestación eliminada exitosamente", Color.black);
            }
        }
    }//GEN-LAST:event_botonEliminarPrestacionActionPerformed

    private void campoFechaDesdePropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_campoFechaDesdePropertyChange
        if (campoFechaHasta.getDate() != null) {
            if (isFechasValidas()) {
                normalizarMensajeria();
                calcularNumeroDias();
            } else {
                cambiarEtiquetaMensajeria("Fechas erroneas", Color.red);
                campoNumeroDias.getNumeros().setText("");
            }
        }
    }//GEN-LAST:event_campoFechaDesdePropertyChange

    private void campoFechaHastaPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_campoFechaHastaPropertyChange
        if (campoFechaDesde.getDate() != null) {
            if (isFechasValidas()) {
                normalizarMensajeria();
                calcularNumeroDias();
            } else {
                cambiarEtiquetaMensajeria("Fechas erroneas", Color.red);
                campoNumeroDias.getNumeros().setText("");
            }
        }
    }//GEN-LAST:event_campoFechaHastaPropertyChange

    private void botonImprimirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonImprimirActionPerformed
        imprimir(jPanel6);
        DialogoVer.dispose();
    }//GEN-LAST:event_botonImprimirActionPerformed

    private void campoCodigoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_campoCodigoActionPerformed
        //debo buscar el nombre de las prestaciones en la bd
        if (campoCodigo.getItemCount() != 0) {
            String cod = (String) campoCodigo.getSelectedItem();
            service.CodigosPrestaciones c = (service.CodigosPrestaciones) cargarCodigoPrestacion(cod);
            campoPrestacion.setText(c.getNombrePrestacion());
        }
    }//GEN-LAST:event_campoCodigoActionPerformed

    private void botonAceptarEstablecimientoOProfesionalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonAceptarEstablecimientoOProfesionalActionPerformed
        if (radioBotonEstablecimiento.isSelected()) {
            DialogoAgregarEstablecimiento dia = new DialogoAgregarEstablecimiento(null, true, campoRutEstablecimiento.getRut().getText());
            dia.setLocationRelativeTo(null);
            dia.setVisible(true);
        } else if (radioBotonProfesional.isSelected()) {
            DialogoInfoUsuarioProfesional dialogoUsuario = new DialogoInfoUsuarioProfesional(null, dispose, new Usuario());
            dialogoUsuario.limpiarCampos();
            dialogoUsuario.habilitarCampos(true);
            dialogoUsuario.setTitle("Agregar Usuario");
            dialogoUsuario.setModal(true);
            dialogoUsuario.campoTipoCuenta.setEnabled(false);
            dialogoUsuario.botonFormularioAccion.setText("Agregar");
            dialogoUsuario.botonFormularioAccion.setIcon(new javax.swing.ImageIcon(getClass().getResource("/GUI/Img/Iconos16X16/Agregar.png")));
            dialogoUsuario.estados.clear();
            dialogoUsuario.disponibilidad.clear();
            dialogoUsuario.campoRut.getRut().setText(campoRutProfesional.getRut().getText());
            dialogoUsuario.setVisible(true);
        }
    }//GEN-LAST:event_botonAceptarEstablecimientoOProfesionalActionPerformed

    private void botonCancelarEstablecimientoOProfesionalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonCancelarEstablecimientoOProfesionalActionPerformed
        dialogoEstablecimientoOProfesional.dispose();
    }//GEN-LAST:event_botonCancelarEstablecimientoOProfesionalActionPerformed
    public boolean isFechasValidas() {
        if (campoFechaDesde.getDate() != null && campoFechaHasta.getDate() != null) {
            if (!campoFechaHasta.getDate().before(campoFechaDesde.getDate())) {
                return true;
            }
        }
        return false;
    }

    public void calcularNumeroDias() {
        int cont = 0;
        Calendar nextDate = new GregorianCalendar();
        nextDate.setTime(campoFechaDesde.getDate());
        while (!(nextDate.get(Calendar.DAY_OF_MONTH) == campoFechaHasta.getCalendar().get(Calendar.DAY_OF_MONTH)
                && nextDate.get(Calendar.MONTH) == campoFechaHasta.getCalendar().get(Calendar.MONTH)
                && nextDate.get(Calendar.YEAR) == campoFechaHasta.getCalendar().get(Calendar.YEAR))) {
            nextDate.add(Calendar.DAY_OF_MONTH, 1);

            cont++;
        }
        campoNumeroDias.getNumeros().setText(cont + "");
    }

    public void numeroDiasFocusLost() {
        campoNumeroDias.getNumeros().addFocusListener(new FocusListener() {

            @Override
            public void focusGained(FocusEvent fe) {
            }

            @Override
            public void focusLost(FocusEvent fe) {
                if (campoFechaDesde.getDate() != null) {
                    calcularFecha();
                }

            }
        });
    }

    public void calcularFecha() {
        int cont = 0;
        Calendar nextDate = new GregorianCalendar();
        nextDate.setTime(campoFechaDesde.getDate());
        while (cont != campoNumeroDias.getNumero()) {
            nextDate.add(Calendar.DAY_OF_MONTH, 1);
            cont++;
        }
        campoFechaHasta.setDate(nextDate.getTime());
    }

    public void rutAfiliadoFocusLost() {
        this.normalizarMensajeria();

        campoRutAfiliado.getRut().addFocusListener(new FocusListener() {

            @Override
            public void focusGained(FocusEvent fe) {
            }

            @Override
            public void focusLost(FocusEvent fe) {
                if (!campoRutAfiliado.isValido() && !campoRutAfiliado.getRut().getText().equals("")) {
                    cambiarEtiquetaMensajeria("Debe ingresar un rut válido", Color.red);
                    campoRutAfiliado.getRut().requestFocus();
                } else if (campoRutAfiliado.isValido() && !dispose) {
                    normalizarMensajeria();
                    service.Paciente p = (service.Paciente) cargarPaciente(campoRutAfiliado.getRut().getText());
                    if (p == null) {
                        int confirmado = JOptionPane.showConfirmDialog(null, "El paciente no esta registrado, ¿desea hacerlo?");
                        if (JOptionPane.OK_OPTION == confirmado) {
                            try {
                                DialogoInfoPaciente dip = new DialogoInfoPaciente(null, true, null);
                                dip.setLocationRelativeTo(null);
                                dip.limpiarCampos();
                                dip.setTitle("Agregar Paciente");
                                dip.getBotonAceptar().setText("Agregar");
                                dip.getBotonAceptar().setIcon(new javax.swing.ImageIcon(getClass().getResource("/GUI/Img/Iconos16X16/Agregar.png")));
                                dip.getBotonCancelar().setText("Cancelar");
                                dip.rut.getRut().setText(campoRutAfiliado.getRut().getText());
                                dip.rut.setEnabled(false);
                                dip.setVisible(true);
                            } catch (FileNotFoundException ex) {
                                Logger.getLogger(DialogoInfoProgramaMedicoFonasa.class.getName()).log(Level.SEVERE, null, ex);
                            } catch (IOException ex) {
                                Logger.getLogger(DialogoInfoProgramaMedicoFonasa.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        } else {
                            campoRutAfiliado.getRut().requestFocus();
                        }
                    }
                    p = (service.Paciente) cargarPaciente(campoRutAfiliado.getRut().getText());
                    llenarCamposAfiliado(p);
                }
            }
        });

    }

    public void llenarCamposAfiliado(service.Paciente p) {
        if (p != null) {
            campoApelldoPaternoAfiliado.setText(p.getApellidoPaterno());
            campoApellidoMaternoAfiliado.setText(p.getApellidoMaterno());
            campoNombresAfiliado.setText(p.getNombres());
        }

    }

    public void rutPacienteFocusLost() {
        normalizarMensajeria();
        campoRutPaciente.getRut().addFocusListener(new FocusListener() {

            @Override
            public void focusGained(FocusEvent fe) {
            }

            @Override
            public void focusLost(FocusEvent fe) {
                if (!campoRutPaciente.isValido() && !campoRutPaciente.getRut().getText().equals("")) {
                    cambiarEtiquetaMensajeria("Debe ingresar un rut válido ", Color.red);
                    campoRutPaciente.getRut().requestFocus();
                } else if (campoRutPaciente.isValido() && !dispose) {
                    normalizarMensajeria();
                    service.Paciente p = (service.Paciente) cargarPaciente(campoRutPaciente.getRut().getText());
                    if (p == null) {
                        int confirmado = JOptionPane.showConfirmDialog(null, "El paciente no esta registrado, ¿desea hacerlo?");
                        if (JOptionPane.OK_OPTION == confirmado) {
                            try {
                                DialogoInfoPaciente dip = new DialogoInfoPaciente(null, true, null);
                                dip.setLocationRelativeTo(null);
                                dip.limpiarCampos();
                                dip.setTitle("Agregar Paciente");
                                dip.getBotonAceptar().setText("Agregar");
                                dip.getBotonAceptar().setIcon(new javax.swing.ImageIcon(getClass().getResource("/GUI/Img/Iconos16X16/Agregar.png")));
                                dip.getBotonCancelar().setText("Cancelar");
                                dip.rut.getRut().setText(campoRutPaciente.getRut().getText());
                                dip.setVisible(true);
                            } catch (FileNotFoundException ex) {
                                Logger.getLogger(DialogoAgregarCita.class.getName()).log(Level.SEVERE, null, ex);
                            } catch (IOException ex) {
                                Logger.getLogger(DialogoAgregarCita.class.getName()).log(Level.SEVERE, null, ex);
                            }
                        } else {
                            campoRutPaciente.getRut().requestFocus();
                        }
                    }
                    p = (service.Paciente) cargarPaciente(campoRutPaciente.getRut().getText());
                    llenarCamposPaciente(p);
                }
            }
        });
    }

    public void llenarCamposPaciente(service.Paciente p) {
        if (p != null) {
            campoApellidoPaternoPaciente.setText(p.getApellidoPaterno());
            campoApellidoMaternoPaciente.setText(p.getApellidoMaterno());
            campoNombresPaciente.setText(p.getNombres());
            campoEdadPaciente.setText("" + calcularEdad(p.getFechaNac()));
            campoSexoPaciente.setText(p.getSexo());
            campoCalle.setText(p.getCalle());
            campoNumero.setText(p.getNumero());
            campoPoblacion.setText(p.getSector());
            campoComuna.setText(p.getComuna());
            campoCiudad.setText(p.getProvincia());
            campoTelefono.setText(p.getCelular());
        }
    }

    public void rutEstablecimientoFocusLost() {
        normalizarMensajeria();
        campoRutEstablecimiento.getRut().addFocusListener(new FocusListener() {

            @Override
            public void focusGained(FocusEvent fe) {
            }

            @Override
            public void focusLost(FocusEvent fe) {
                if (!campoRutEstablecimiento.isValido() && !campoRutEstablecimiento.getRut().getText().equals("")) {
                    cambiarEtiquetaMensajeria("Debe ingresar un rut válido", Color.red);
                    campoRutEstablecimiento.getRut().requestFocus();
                } else if (campoRutEstablecimiento.isValido() && !dispose) {
                    normalizarMensajeria();
                    service.Establecimiento e = (service.Establecimiento) cargarEstablecimiento(campoRutEstablecimiento.getRut().getText());
                    service.Usuario u = (service.Usuario) cargarUsuario(campoRutEstablecimiento.getRut().getText());
                    if (e == null && u == null) {
                        int confirmado = JOptionPane.showConfirmDialog(null, "El establecimiento o profesional no esta registrado, ¿desea hacerlo?");
                        if (JOptionPane.OK_OPTION == confirmado) {
                            int seleccion = JOptionPane.showOptionDialog(null, "Seleccione opcion", "Selector de opciones", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,
                                    null, new Object[]{"Establecimiento", "Profesional"}, "Establecimiento");
                            if (seleccion == 0) {//establecimiento
                                DialogoAgregarEstablecimiento dia = new DialogoAgregarEstablecimiento(null, true, campoRutEstablecimiento.getRut().getText());
                                dia.setLocationRelativeTo(null);
                                dia.setVisible(true);
                            }
                            if (seleccion == 1) {
                                campoGrupoNivelEstablecimiento.getNumeros().setEnabled(true);
                                DialogoInfoUsuarioProfesional dialogoUsuario = new DialogoInfoUsuarioProfesional(null, dispose, new Usuario());
                                dialogoUsuario.limpiarCampos();
                                dialogoUsuario.habilitarCampos(true);
                                dialogoUsuario.setTitle("Agregar Usuario");
                                dialogoUsuario.setModal(true);
                                dialogoUsuario.campoTipoCuenta.setEnabled(false);
                                dialogoUsuario.botonFormularioAccion.setText("Agregar");
                                dialogoUsuario.botonFormularioAccion.setIcon(new javax.swing.ImageIcon(getClass().getResource("/GUI/Img/Iconos16X16/Agregar.png")));
                                dialogoUsuario.estados.clear();
                                dialogoUsuario.disponibilidad.clear();
                                dialogoUsuario.campoRut.getRut().setText(campoRutEstablecimiento.getRut().getText());
                                dialogoUsuario.setVisible(true);
                            }
                        } else {
                            campoRutEstablecimiento.getRut().requestFocus();
                        }
                    }
                    e = (Establecimiento) cargarEstablecimiento(campoRutEstablecimiento.getRut().getText());
                    if (e != null) {
                        llenarCamposEstablecimiento(e);
                    }
                    u = (service.Usuario) cargarUsuario(campoRutEstablecimiento.getRut().getText());
                    if (u != null) {
                        campoNombreEstablecimiento.setText(u.getNombres() + " " + u.getApellidoPaterno() + " " + u.getApellidoMaterno());
                        campoGrupoNivelEstablecimiento.getNumeros().setEnabled(true);
                    }
                }
            }
        });
    }

    public void llenarCamposEstablecimiento(service.Establecimiento e) {
        if (e != null) {
            campoNombreEstablecimiento.setText(e.getNombre());
            campoGrupoNivelEstablecimiento.getNumeros().setText(e.getGrupoNivel() + "");
        }
    }

    public void rutProfesionalFocusLost() {
        normalizarMensajeria();
        campoRutProfesional.getRut().addFocusListener(new FocusListener() {

            @Override
            public void focusGained(FocusEvent fe) {
            }

            @Override
            public void focusLost(FocusEvent fe) {
                if (!campoRutProfesional.isValido() && !campoRutProfesional.getRut().getText().equals("")) {
                    cambiarEtiquetaMensajeria("Debe ingresar un rut válido", Color.red);
                    campoRutProfesional.getRut().requestFocus();
                } else if (campoRutProfesional.isValido() && !dispose) {
                    normalizarMensajeria();
                    service.Establecimiento e = (service.Establecimiento) cargarEstablecimiento(campoRutProfesional.getRut().getText());
                    service.Usuario u = (service.Usuario) cargarUsuario(campoRutProfesional.getRut().getText());
                    if (e == null && u == null) {
                        int confirmado = JOptionPane.showConfirmDialog(null, "El establecimiento o profesional no esta registrado, ¿desea hacerlo?");
                        if (JOptionPane.OK_OPTION == confirmado) {
                            int seleccion = JOptionPane.showOptionDialog(null, "Seleccione opcion", "Selector de opciones", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,
                                    null, new Object[]{"Establecimiento", "Profesional"}, "Establecimiento");
                            if (seleccion == 0) {//establecimiento
                                DialogoAgregarEstablecimiento dia = new DialogoAgregarEstablecimiento(null, true, campoRutProfesional.getRut().getText());
                                dia.setLocationRelativeTo(null);
                                dia.setVisible(true);
                            }
                            if (seleccion == 1) {
                                DialogoInfoUsuarioProfesional dialogoUsuario = new DialogoInfoUsuarioProfesional(null, dispose, new Usuario());
                                dialogoUsuario.limpiarCampos();
                                dialogoUsuario.habilitarCampos(true);
                                dialogoUsuario.setTitle("Agregar Usuario");
                                dialogoUsuario.setModal(true);
                                dialogoUsuario.campoTipoCuenta.setEnabled(false);
                                dialogoUsuario.botonFormularioAccion.setText("Agregar");
                                dialogoUsuario.botonFormularioAccion.setIcon(new javax.swing.ImageIcon(getClass().getResource("/GUI/Img/Iconos16X16/Agregar.png")));
                                dialogoUsuario.estados.clear();
                                dialogoUsuario.disponibilidad.clear();
                                dialogoUsuario.campoRut.getRut().setText(campoRutProfesional.getRut().getText());
                                dialogoUsuario.setVisible(true);
                            }
                        } else {
                            campoRutProfesional.getRut().requestFocus();
                        }
                    }
                    e = (Establecimiento) cargarEstablecimiento(campoRutProfesional.getRut().getText());
                    if (e != null) {
                        campoNombreProfesional.setText(e.getNombre());
                        campoGrupoNivelProfesional.getNumeros().setText(e.getGrupoNivel() + "");
                    }
                    u = (service.Usuario) cargarUsuario(campoRutProfesional.getRut().getText());
                    if (u != null) {
                        llenarCamposProfesional(u);
                    }
                }
            }
        });
    }

    public void llenarCamposProfesional(service.Usuario u) {

        if (u != null) {
            campoNombreProfesional.setText(u.getNombres() + " " + u.getApellidoPaterno() + " " + u.getApellidoMaterno());
        }
    }

    public void numeroProgramaFocusLost() {
        campoNumeroPrograma.getNumeros().addFocusListener(new FocusListener() {

            @Override
            public void focusGained(FocusEvent fe) {
            }

            @Override
            public void focusLost(FocusEvent fe) {
                if (!verificarProgramaFonasa(campoNumeroPrograma.getNumeros().getText())) {
                    cambiarEtiquetaMensajeria("El número de programa ya existe", Color.red);
                    campoNumeroPrograma.getNumeros().requestFocus();
                }
            }
        });
    }

    

    public void normalizarMensajeria() {
        campoMensajeria.setText("Área de mensajería");
        campoMensajeria.setForeground(Color.black);
    }

    public void limpiarCampos() {
        this.campoNumeroPrograma.getNumeros().setText("");
        this.campoRutAfiliado.getRut().setText("");
        this.campoApelldoPaternoAfiliado.setText("");
        this.campoApellidoMaternoAfiliado.setText("");
        this.campoNombresAfiliado.setText("");
        this.campoCalle.setText("");
        this.campoNumero.setText("");
        this.campoPoblacion.setText("");
        this.campoComuna.setText("");
        this.campoCiudad.setText("");
        this.campoTelefono.setText("");
        this.campoRutPaciente.getRut().setText("");
        this.campoApellidoMaternoPaciente.setText("");
        this.campoApellidoPaternoPaciente.setText("");
        this.campoNombresPaciente.setText("");
        this.campoEdadPaciente.setText("");
        this.campoSexoPaciente.setText("");
        this.campoRutEstablecimiento.getRut().setText("");
        this.campoGrupoNivelEstablecimiento.getNumeros().setText("");
        this.campoNombreEstablecimiento.setText("");
        this.campoFechaDesde.setDate(null);
        this.campoFechaHasta.setDate(null);
        this.campoNumeroDias.getNumeros().setText("");
        this.campoRutProfesional.getRut().setText("");
        this.campoGrupoNivelProfesional.getNumeros().setText("");
        this.campoNombreProfesional.setText("");
        this.campoDiagnosticoProfesional.setText("");

        limpiarTabla();
        normalizarMensajeria();
    }

    public JButton getBotonAceptar() {
        return this.botonAceptar;
    }

    public JButton getBotonCancelar() {
        return this.botonCancelar;
    }

    public void habilitarCampos() {
        this.campoNumeroPrograma.getNumeros().setEnabled(true);
        this.campoRutAfiliado.getRut().setEnabled(true);
        this.campoRutPaciente.getRut().setEnabled(true);
        this.campoRutEstablecimiento.getRut().setEnabled(true);
        this.campoRutProfesional.getRut().setEnabled(true);
        this.campoGrupoNivelProfesional.getNumeros().setEnabled(true);
        this.campoFechaDesde.setEnabled(true);
        this.campoFechaHasta.setEnabled(true);
        this.campoNumeroDias.getNumeros().setEnabled(true);
        this.campoDiagnosticoProfesional.setEnabled(true);
        contenedorPrestaciones.setEnabled(true);
        botonAgregarPrestacion.setEnabled(true);
        botonEliminarPrestacion.setEnabled(true);
        this.campoNivel.getNumeros().setEnabled(true);
        campoCodigo.setEnabled(true);
        campoCantidad.getNumeros().setEnabled(true);

    }

    public void inhabilitarCampos() {
        this.campoNumeroPrograma.getNumeros().setEnabled(false);
        this.campoRutAfiliado.getRut().setEnabled(false);
        this.campoApelldoPaternoAfiliado.setEnabled(false);
        this.campoApellidoMaternoAfiliado.setEnabled(false);
        this.campoNombresAfiliado.setEnabled(false);
        this.campoCalle.setEnabled(false);
        this.campoNumero.setEnabled(false);
        this.campoPoblacion.setEnabled(false);
        this.campoComuna.setEnabled(false);
        this.campoCiudad.setEnabled(false);
        this.campoTelefono.setEnabled(false);
        this.campoRutPaciente.getRut().setEnabled(false);
        this.campoApellidoMaternoPaciente.setEnabled(false);
        this.campoApellidoPaternoPaciente.setEnabled(false);
        this.campoNombresPaciente.setEnabled(false);
        this.campoEdadPaciente.setEnabled(false);
        this.campoSexoPaciente.setEnabled(false);
        this.campoRutEstablecimiento.getRut().setEnabled(false);
        this.campoGrupoNivelEstablecimiento.getNumeros().setEnabled(false);
        this.campoNombreEstablecimiento.setEnabled(false);
        this.campoFechaDesde.setEnabled(false);
        this.campoFechaHasta.setEnabled(false);
        this.campoNumeroDias.getNumeros().setEnabled(false);
        this.campoRutProfesional.getRut().setEnabled(false);
        this.campoGrupoNivelProfesional.getNumeros().setEnabled(false);
        this.campoNombreProfesional.setEnabled(false);
        this.campoGrupoNivelProfesional.getNumeros().setEnabled(false);
        this.campoDiagnosticoProfesional.setEnabled(false);
        this.contenedorPrestaciones.setEnabled(false);
        this.campoNivel.getNumeros().setEnabled(false);
        campoCodigo.setEnabled(false);
        campoCantidad.getNumeros().setEnabled(false);
        this.botonAgregarPrestacion.setEnabled(false);
        this.botonEliminarPrestacion.setEnabled(false);
    }

    public void rutFocusLost() {
        this.rutAfiliadoFocusLost();
        this.rutPacienteFocusLost();
        this.rutEstablecimientoFocusLost();
        this.rutProfesionalFocusLost();
    }

    public void cambiarEtiquetaMensajeria(String mensaje, Color color) {
        campoMensajeria.setText(mensaje);
        campoMensajeria.setForeground(color);
    }

    public boolean camposObligatoriosLlenos() {
        boolean b = true;
        
        if (!verificarProgramaFonasa(campoNumeroPrograma.getNumeros().getText()) && botonAceptar.getText().equals("Agregar")) {
            cambiarEtiquetaMensajeria("El número de programa ya existe", Color.red);
            b = false;
        }
        if (campoNumeroPrograma.getNumeros().getText().equals("")
                || (campoRutAfiliado.getRut().getText().equals("") && campoRutPaciente.getRut().getText().equals(""))
                || campoRutProfesional.getRut().getText().equals("")
                || campoDiagnosticoProfesional.getText().equals("")) {
            cambiarEtiquetaMensajeria("Existen campos obligatorios sin llenar", Color.red);
            b = false;
        }
        return b;
    }

    public int calcularEdad(String fecha) {
        String datetext = fecha;
        try {
            Calendar birth = new GregorianCalendar();
            Calendar today = new GregorianCalendar();
            int age = 0;
            int factor = 0;
            Date birthDate = new SimpleDateFormat("dd-MM-yyyy").parse(datetext);
            Date currentDate = new Date(); //current date
            birth.setTime(birthDate);
            today.setTime(currentDate);
            if (today.get(Calendar.MONTH) <= birth.get(Calendar.MONTH)) {
                if (today.get(Calendar.MONTH) == birth.get(Calendar.MONTH)) {
                    if (today.get(Calendar.DATE) > birth.get(Calendar.DATE)) {
                        factor = -1; //Aun no celebra su cumpleaÃ±os
                    }
                } else {
                    factor = -1; //Aun no celebra su cumpleaÃ±os
                }
            }
            age = (today.get(Calendar.YEAR) - birth.get(Calendar.YEAR)) + factor;
            if (age != -1) {
                return age;
            } else {
                return 0;
            }
        } catch (ParseException e) {
            return -1;
        }

    }

    public void ocultarColumna(int columna) {
        contenedorPrestaciones.getColumnModel().getColumn(columna).setMaxWidth(0);
        contenedorPrestaciones.getColumnModel().getColumn(columna).setMinWidth(0);
        contenedorPrestaciones.getColumnModel().getColumn(columna).setPreferredWidth(0);
    }

    private void guardarPrestacionesMedicas() {
        for (int i = 0; i < contenedorPrestaciones.getRowCount(); i++) {
            if (contenedorPrestaciones.getModel().getValueAt(i, 0).equals("")) {
                service.PrestacionMedica p = new service.PrestacionMedica();
                p.setNivel(Integer.parseInt((String) contenedorPrestaciones.getModel().getValueAt(i, 1)));
                p.setCodigo((String) contenedorPrestaciones.getModel().getValueAt(i, 2));
                p.setCantidad(Integer.parseInt((String) contenedorPrestaciones.getModel().getValueAt(i, 3)));
                p.setNumeroPrograma(campoNumeroPrograma.getNumeros().getText());
                p.setTipoPrograma("FONASA");
                int valor = Integer.parseInt(contenedorPrestaciones.getValueAt(i, 6).toString());
                p.setValor("$"+df.format(valor));
                agregarPrestacionMedicaGeneral(p);
                String nuevo = "Código: " + p.getCodigo() + "\n" + "Cantidad: " + p.getCantidad() + "\n" + "Número programa: " + p.getNumeroPrograma() + "\n" + "Tipo programa: " + p.getTipoPrograma() + "\n" + "Nivel: " + p.getNivel();
                registrar(Login.getUser(), "Programa médico", "Agregó prestación código: " + p.getCodigo() + " a programa FONASA: " + p.getNumeroPrograma(), "No aplica", nuevo);
            }
        }
    }

    public void llenarCampos(service.ProgramaMedicoFonasa p) {
        try {
            service.Paciente afiliado = (service.Paciente) cargarPaciente(p.getRutAfiliado());
            service.Paciente paciente = (service.Paciente) cargarPaciente(p.getRutPaciente());
            service.Establecimiento establecimiento = (service.Establecimiento) cargarEstablecimiento(p.getRutEstablecimiento());
            service.Usuario profesional = (service.Usuario) cargarUsuario(p.getRutProfesional());
            campoNumeroPrograma.getNumeros().setText(p.getNumeroPrograma() + "");
            campoRutAfiliado.getRut().setText(p.getRutAfiliado());
            llenarCamposAfiliado(afiliado);
            campoRutPaciente.getRut().setText(p.getRutPaciente());
            if (paciente != null) {
                llenarCamposPaciente(paciente);
            }
            if (establecimiento != null) {
                campoRutEstablecimiento.getRut().setText(p.getRutEstablecimiento());
                campoNombreEstablecimiento.setText(establecimiento.getNombre());
                campoGrupoNivelEstablecimiento.getNumeros().setText(establecimiento.getGrupoNivel() + "");
            } else {
                campoRutEstablecimiento.getRut().setText(p.getRutEstablecimiento());
                campoNombreEstablecimiento.setText(profesional.getNombres() + " " + profesional.getApellidoPaterno() + " " + profesional.getApellidoMaterno());
                campoGrupoNivelEstablecimiento.getNumeros().setText(p.getGrupoNivelProfesional() + "");
            }
            if (p.getFechaDesde() != null) {
                campoFechaDesde.setDate(new SimpleDateFormat("dd-MM-yyyy").parse(p.getFechaDesde()));
            }
            if (p.getFechaHasta() != null) {
                campoFechaHasta.setDate(new SimpleDateFormat("dd-MM-yyyy").parse(p.getFechaHasta()));
            }
            if (p.getFechaDesde() != null && p.getFechaHasta() != null) {
                calcularNumeroDias();
            }
            if (profesional != null) {
                campoRutProfesional.getRut().setText(p.getRutProfesional());
                campoNombreProfesional.setText(profesional.getNombres() + " " + profesional.getApellidoPaterno() + " " + profesional.getApellidoMaterno());
                campoGrupoNivelProfesional.getNumeros().setText(p.getGrupoNivelProfesional() + "");
            } else {
                campoRutProfesional.getRut().setText(p.getRutProfesional());
                campoNombreProfesional.setText(establecimiento.getNombre());
                campoGrupoNivelProfesional.getNumeros().setText(p.getGrupoNivelProfesional() + "");
            }
            campoDiagnosticoProfesional.setText(p.getDiagnosticoProfesional());
            actualizarTabla(p);
        } catch (ParseException ex) {
            Logger.getLogger(DialogoInfoProgramaMedicoFonasa.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public void actualizarTabla(service.ProgramaMedicoFonasa p) {
        this.limpiarTabla();
        List<service.PrestacionMedica> prestaciones = listarPrestacionesMedicasGeneral();
        int j = 0;
        for (int i = 0; i < prestaciones.size(); i++) {
            if (prestaciones.get(i).getNumeroPrograma().equals(p.getNumeroPrograma())) {
                this.agregarFila();
                service.CodigosPrestaciones c = (service.CodigosPrestaciones) cargarCodigoPrestacion(prestaciones.get(i).getCodigo());
                contenedorPrestaciones.setValueAt(prestaciones.get(i).getId() + "", j, 0);
                contenedorPrestaciones.setValueAt(prestaciones.get(i).getNivel() + "", j, 1);
                contenedorPrestaciones.setValueAt(prestaciones.get(i).getCodigo() + "", j, 2);
                contenedorPrestaciones.setValueAt(prestaciones.get(i).getCantidad() + "", j, 3);
                contenedorPrestaciones.setValueAt(c.getNombrePrestacion(), j, 4);
                contenedorPrestaciones.setValueAt(campoRutProfesional.getRut().getText() + "", j, 5);
                contenedorPrestaciones.setValueAt(prestaciones.get(i).getValor().replace("$", "").replace(".", ""), j, 6);
                j++;
            }
        }
    }

    public void limpiarTabla() {
        DefaultTableModel temp = (DefaultTableModel) contenedorPrestaciones.getModel();
        for (int i = 0; i < temp.getRowCount(); i++) {
            temp.removeRow(i);
        }
        System.out.println("size tabla " + contenedorPrestaciones.getRowCount());
    }

    public void agregarFila() {
        DefaultTableModel temp = (DefaultTableModel) contenedorPrestaciones.getModel();
        Object nuevo[] = {"", "", "", "", "", ""};
        temp.addRow(nuevo);
    }

    private void modificarProg(service.ProgramaMedicoFonasa sp) {
        
        sp.setNumeroPrograma(campoNumeroPrograma.getNumeros().getText());
        System.out.println("numero de programa "+sp.getNumeroPrograma());
        sp.setRutAfiliado(campoRutAfiliado.getRut().getText());
        sp.setRutPaciente(campoRutPaciente.getRut().getText());
        sp.setRutEstablecimiento(campoRutEstablecimiento.getRut().getText());
        if (campoFechaDesde.getDate() != null) {
            sp.setFechaDesde(new SimpleDateFormat("dd-MM-yyyy").format(campoFechaDesde.getDate()));
        }
        if (campoFechaHasta.getDate() != null) {
            sp.setFechaHasta(new SimpleDateFormat("dd-MM-yyyy").format(campoFechaHasta.getDate()));
        }
        sp.setRutProfesional(campoRutProfesional.getRut().getText());
        sp.setGrupoNivelProfesional(campoGrupoNivelProfesional.getNumero());
        sp.setDiagnosticoProfesional(campoDiagnosticoProfesional.getText());
        sp.setValorTotal(this.calcularValorPrograma());
        modificarProgramaFonasa(sp);
    }

    public void llenarCamposImpresion() {
        etiquetaRutAfiliado.setText(campoRutAfiliado.getRut().getText());
        EtiquetaApellidoPaternoAfiliado.setText(campoApelldoPaternoAfiliado.getText()+" ");
        etiquetaApellidoMaternoAfiliado.setText(campoApellidoMaternoAfiliado.getText()+" ");
        etiquetaNombresAfiliado.setText(campoNombresAfiliado.getText()+" ");
        EtiquetaTelefonoAfiliado.setText(campoTelefono.getText()+" ");
        etiquetaCalle.setText(campoCalle.getText()+" ");
        etiquetaNumero.setText(campoNumero.getText()+" ");
        etiquetaPoblacion.setText(campoPoblacion.getText()+" ");
        etiquetaComuna.setText(campoComuna.getText()+" ");
        etiquetaCiudad.setText(campoCiudad.getText()+" ");
        etiquetaRutPaciente.setText(campoRutPaciente.getRut().getText());
        etiquetaApellidoPaternoPaciente.setText(campoApellidoPaternoPaciente.getText()+" ");
        etiquetaApellidoMaternoPaciente.setText(campoApellidoMaternoPaciente.getText()+" ");
        etiquetaNombresPaciente.setText(campoNombresPaciente.getText()+" ");
        etiquetaEdad.setText(campoEdadPaciente.getText()+" ");
        if (campoSexoPaciente.getText().equals("Femenino")) {
            etiquetaSexo.setText("F");
        }
        else if (campoSexoPaciente.getText().equals("Masculino")) {
            etiquetaSexo.setText("M");
        }
        else 
            etiquetaSexo.setText("");
        etiquetaRutEstablecimiento.setText(campoRutEstablecimiento.getRut().getText());
        etiquetaGrupoNivelEstablecimiento.setText(campoGrupoNivelEstablecimiento.getNumero() + "");
        etiquetaNombreEstablecimiento.setText(campoNombreEstablecimiento.getText());
        etiquetaFechaDesde.setText(new SimpleDateFormat("dd-MM-yyyy").format(campoFechaDesde.getDate()));
        etiquetaFechaHasta.setText(new SimpleDateFormat("dd-MM-yyyy").format(campoFechaHasta.getDate()));
        etiquetaNumeroDias.setText(campoNumeroDias.getNumero() + "");
        etiquetaRutProfesional.setText(campoRutProfesional.getRut().getText());
        etiquetaGrupoNivelProfesional.setText(campoGrupoNivelProfesional.getNumero() + "");
        etiquetaNombreProfesional.setText(campoNombreProfesional.getText());
        etiquetaDiagnostico.setText(campoDiagnosticoProfesional.getText());
        actualizarTablaImpresion();
    }

    public void actualizarTablaImpresion() {
        limpiarTablaImpresion();
        DefaultTableModel model = (DefaultTableModel) tablaContenedoraPrestaciones.getModel();
        for (int i = 0; i < contenedorPrestaciones.getRowCount(); i++) {
            Object fila[] = {contenedorPrestaciones.getValueAt(i, 1), contenedorPrestaciones.getValueAt(i, 2), contenedorPrestaciones.getValueAt(i, 3), contenedorPrestaciones.getValueAt(i, 4), contenedorPrestaciones.getValueAt(i, 5)};
            model.addRow(fila);
        }

    }

    public void limpiarTablaImpresion() {
        DefaultTableModel temp = (DefaultTableModel) tablaContenedoraPrestaciones.getModel();
        for (int i = 0; i < temp.getRowCount(); i++) {
            temp.removeRow(i);
        }
    }

    public boolean camposObligatoriosPrestacionLlenos() {
        if (!campoNivel.getNumeros().getText().equals("")
                && !campoCantidad.getNumeros().getText().equals("")
                && !((String) campoCodigo.getSelectedItem()).equals("Seleccionar")) {
            return true;
        }
        return false;
    }

    public void cargarCodigos() {
        campoCodigo.removeAllItems();
        List<service.CodigosPrestaciones> codigos = listarCodigosPrestaciones();
        for (service.CodigosPrestaciones c : codigos) {
            campoCodigo.addItem(c.getId());
        }
    }

    public static void imprimir(JPanel panel) {

        PrinterJob printJob = PrinterJob.getPrinterJob();

        Book libro = new Book();
        libro.append(new Impresion(panel), printJob.defaultPage());
        printJob.setPageable(libro);

        if (printJob.printDialog()) {
            try {
                printJob.print();
            } catch (Exception PrinterException) {
                JOptionPane.showMessageDialog(null, PrinterException.getMessage());
            }
        }
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    public javax.swing.JDialog DialogoVer;
    private javax.swing.JLabel EtiquetaApellidoPaternoAfiliado;
    private javax.swing.JLabel EtiquetaTelefonoAfiliado;
    private javax.swing.JButton botonAceptar;
    private javax.swing.JButton botonAceptarEstablecimientoOProfesional;
    private javax.swing.JButton botonAgregarPrestacion;
    private javax.swing.JButton botonCancelar;
    private javax.swing.JButton botonCancelarEstablecimientoOProfesional;
    private javax.swing.JButton botonEliminarPrestacion;
    private javax.swing.JButton botonImprimir;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JTextField campoApelldoPaternoAfiliado;
    private javax.swing.JTextField campoApellidoMaternoAfiliado;
    private javax.swing.JTextField campoApellidoMaternoPaciente;
    private javax.swing.JTextField campoApellidoPaternoPaciente;
    private javax.swing.JTextField campoCalle;
    private componentes.Numeros campoCantidad;
    private javax.swing.JTextField campoCiudad;
    private javax.swing.JComboBox campoCodigo;
    private javax.swing.JTextField campoComuna;
    private javax.swing.JTextField campoDiagnosticoProfesional;
    private javax.swing.JTextField campoEdadPaciente;
    private com.toedter.calendar.JDateChooser campoFechaDesde;
    private com.toedter.calendar.JDateChooser campoFechaHasta;
    private componentes.Numeros campoGrupoNivelEstablecimiento;
    private componentes.Numeros campoGrupoNivelProfesional;
    private javax.swing.JLabel campoMensajeria;
    private componentes.Numeros campoNivel;
    private javax.swing.JTextField campoNombreEstablecimiento;
    private javax.swing.JTextField campoNombreProfesional;
    private javax.swing.JTextField campoNombresAfiliado;
    private javax.swing.JTextField campoNombresPaciente;
    private javax.swing.JTextField campoNumero;
    private componentes.Numeros campoNumeroDias;
    public componentes.Numeros campoNumeroPrograma;
    private javax.swing.JTextField campoPoblacion;
    private javax.swing.JTextField campoPrestacion;
    private componentes.Rut campoRutAfiliado;
    private componentes.Rut campoRutEstablecimiento;
    private componentes.Rut campoRutPaciente;
    private componentes.Rut campoRutProfesional;
    private javax.swing.JTextField campoSexoPaciente;
    private javax.swing.JTextField campoTelefono;
    private javax.swing.JLabel contenedorFonasa;
    public javax.swing.JTable contenedorPrestaciones;
    private javax.swing.JDialog dialogoEstablecimientoOProfesional;
    private javax.swing.JLabel etiquetaApellidoMaternoAfiliado;
    private javax.swing.JLabel etiquetaApellidoMaternoPaciente;
    private javax.swing.JLabel etiquetaApellidoPaternoPaciente;
    private javax.swing.JLabel etiquetaCalle;
    private javax.swing.JLabel etiquetaCiudad;
    private javax.swing.JLabel etiquetaComuna;
    private javax.swing.JLabel etiquetaDiagnostico;
    private javax.swing.JLabel etiquetaEdad;
    private javax.swing.JLabel etiquetaFechaDesde;
    private javax.swing.JLabel etiquetaFechaHasta;
    private javax.swing.JLabel etiquetaGrupoNivelEstablecimiento;
    private javax.swing.JLabel etiquetaGrupoNivelProfesional;
    private javax.swing.JLabel etiquetaNombreEstablecimiento;
    private javax.swing.JLabel etiquetaNombreProfesional;
    private javax.swing.JLabel etiquetaNombresAfiliado;
    private javax.swing.JLabel etiquetaNombresPaciente;
    private javax.swing.JLabel etiquetaNumero;
    private javax.swing.JLabel etiquetaNumeroDias;
    private javax.swing.JLabel etiquetaPoblacion;
    private javax.swing.JLabel etiquetaRutAfiliado;
    private javax.swing.JLabel etiquetaRutEstablecimiento;
    private javax.swing.JLabel etiquetaRutPaciente;
    private javax.swing.JLabel etiquetaRutProfesional;
    private javax.swing.JLabel etiquetaSexo;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel26;
    private javax.swing.JLabel jLabel28;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel31;
    private javax.swing.JLabel jLabel32;
    private javax.swing.JLabel jLabel33;
    private javax.swing.JLabel jLabel34;
    private javax.swing.JLabel jLabel35;
    private javax.swing.JLabel jLabel37;
    private javax.swing.JLabel jLabel38;
    private javax.swing.JLabel jLabel39;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel41;
    private javax.swing.JLabel jLabel43;
    private javax.swing.JLabel jLabel45;
    private javax.swing.JLabel jLabel47;
    private javax.swing.JLabel jLabel49;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel51;
    private javax.swing.JLabel jLabel53;
    private javax.swing.JLabel jLabel55;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    public javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JLabel mensajeriaInformacion1;
    private javax.swing.JRadioButton radioBotonEstablecimiento;
    private javax.swing.JRadioButton radioBotonProfesional;
    public javax.swing.JTable tablaContenedoraPrestaciones;
    // End of variables declaration//GEN-END:variables
    
    private boolean validarNumeroDePrograma() {
        List<service.ProgramaMedicoFonasa> list = listarProgramasFonasa();
        for (service.ProgramaMedicoFonasa p : list) {
            if (Integer.parseInt(p.getNumeroPrograma()) == campoNumeroPrograma.getNumero()) {
                return false;
            }
        }
        return true;
    }

    private static Object cargarPrivilegios(java.lang.String rut) {
        service.PrivilegiosWS_Service service = new service.PrivilegiosWS_Service();
        service.PrivilegiosWS port = service.getPrivilegiosWSPort();
        return port.cargarPrivilegios(rut);
    }
    private static Object cargarPaciente(java.lang.String rut) {
        service.PacienteWS_Service service = new service.PacienteWS_Service();
        service.PacienteWS port = service.getPacienteWSPort();
        return port.cargarPaciente(rut);
    }

    private static Long registrar(service.Usuario usuario, java.lang.String modulo, java.lang.String accion, java.lang.String valorAnterior, java.lang.String valorNuevo) {
        service.BitacoraWSService service = new service.BitacoraWSService();
        service.BitacoraWS port = service.getBitacoraWSPort();
        return port.registrar(usuario, modulo, accion, valorAnterior, valorNuevo);
    }

    private static Object cargarUsuario(java.lang.String rut) {
        service.UsuarioWSService service = new service.UsuarioWSService();
        service.UsuarioWS port = service.getUsuarioWSPort();
        return port.cargarUsuario(rut);
    }

    private static java.util.List<service.CodigosPrestaciones> listarCodigosPrestaciones() {
        service.PrestacionMedicaGeneralWSService service = new service.PrestacionMedicaGeneralWSService();
        service.PrestacionMedicaGeneralWS port = service.getPrestacionMedicaGeneralWSPort();
        return port.listarCodigosPrestaciones();
    }

    private static Object cargarCodigoPrestacion(java.lang.String id) {
        service.PrestacionMedicaGeneralWSService service = new service.PrestacionMedicaGeneralWSService();
        service.PrestacionMedicaGeneralWS port = service.getPrestacionMedicaGeneralWSPort();
        return port.cargarCodigoPrestacion(id);
    }

    private static boolean agregarPrestacionMedicaGeneral(service.PrestacionMedica prestacion) {
        service.PrestacionMedicaGeneralWSService service = new service.PrestacionMedicaGeneralWSService();
        service.PrestacionMedicaGeneralWS port = service.getPrestacionMedicaGeneralWSPort();
        return port.agregarPrestacionMedicaGeneral(prestacion);
    }

    private static boolean eliminarPrestacionMedicaGeneral(java.lang.Long id) {
        service.PrestacionMedicaGeneralWSService service = new service.PrestacionMedicaGeneralWSService();
        service.PrestacionMedicaGeneralWS port = service.getPrestacionMedicaGeneralWSPort();
        return port.eliminarPrestacionMedicaGeneral(id);
    }

    private static java.util.List<service.PrestacionMedica> listarPrestacionesMedicasGeneral() {
        service.PrestacionMedicaGeneralWSService service = new service.PrestacionMedicaGeneralWSService();
        service.PrestacionMedicaGeneralWS port = service.getPrestacionMedicaGeneralWSPort();
        return port.listarPrestacionesMedicasGeneral();
    }

    private static Object cargarEstablecimiento(java.lang.String rut) {
        service.ProgramaFonasaWSService service = new service.ProgramaFonasaWSService();
        service.ProgramaFonasaWS port = service.getProgramaFonasaWSPort();
        return port.cargarEstablecimiento(rut);
    }

    private static java.util.List<service.Usuario> buscarProfesionales() {
        service.AgendaWS_Service service = new service.AgendaWS_Service();
        service.AgendaWS port = service.getAgendaWSPort();
        return port.buscarProfesionales();
    }

    private void calcularCantidadSesiones(service.ProgramaMedicoFonasa sp) {
        int max = 0;
        for (int i = 0; i < contenedorPrestaciones.getRowCount(); i++) {
            int value = Integer.parseInt((String) contenedorPrestaciones.getValueAt(i, 3));
            if (value > max) {
                max = value;
            }
        }
        System.out.println("cantidad de citas " + max);
        sp.setCantidadCitas(max);
        sp.setCantidadCitasTotal(max);
    }

    private String calcularValorPrograma() {
        int suma = 0;
        for(int i = 0; i<contenedorPrestaciones.getRowCount();i++){
            int valorPrestacion = Integer.parseInt(contenedorPrestaciones.getValueAt(i, 6).toString());
            suma = suma+valorPrestacion;
        }
        return "$" + df.format(suma);
    }


    static class Impresion implements Printable {

        private JPanel componente; //Cualquier Componente

        public Impresion(JPanel panelUno) {
            componente = panelUno;

        }

        public int print(Graphics graficar, PageFormat pageFormat, int pageIndex) {
            if (pageIndex > 0) {
                return NO_SUCH_PAGE;
            }

            Graphics2D graficar2D = (Graphics2D) graficar;

            graficar2D.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
            graficar2D.scale(0.70, 0.70);

            componente.printAll(graficar2D);

            return PAGE_EXISTS;
        }
    }

    public class MyRenderer extends DefaultTableCellRenderer {

        Color background;
        Color foreground;

        public MyRenderer(Color background, Color foreground) {
            super();
            this.background = background;
            this.foreground = foreground;
        }

        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            Component comp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
            comp.setBackground(background);
            comp.setForeground(foreground);
            return comp;
        }
    }


    private static Object cargarPrestacionMedicaGeneral(java.lang.Long id) {
        service.PrestacionMedicaGeneralWSService service = new service.PrestacionMedicaGeneralWSService();
        service.PrestacionMedicaGeneralWS port = service.getPrestacionMedicaGeneralWSPort();
        return port.cargarPrestacionMedicaGeneral(id);
    }   


    private static java.util.List<service.ProgramaMedicoFonasa> listarProgramasFonasa() {
        service.ProgramaFonasaWSService service = new service.ProgramaFonasaWSService();
        service.ProgramaFonasaWS port = service.getProgramaFonasaWSPort();
        return port.listarProgramasFonasa();
    }

    private static boolean modificarProgramaFonasa(service.ProgramaMedicoFonasa programaMedico) {
        service.ProgramaFonasaWSService service = new service.ProgramaFonasaWSService();
        service.ProgramaFonasaWS port = service.getProgramaFonasaWSPort();
        return port.modificarProgramaFonasa(programaMedico);
    }

    private static Object cargarProgramaFonasa(java.lang.Long id) {
        service.ProgramaFonasaWSService service = new service.ProgramaFonasaWSService();
        service.ProgramaFonasaWS port = service.getProgramaFonasaWSPort();
        return port.cargarProgramaFonasa(id);
    }

    private static boolean agregarProgramaFonasa(service.ProgramaMedicoFonasa programa) {
        service.ProgramaFonasaWSService service = new service.ProgramaFonasaWSService();
        service.ProgramaFonasaWS port = service.getProgramaFonasaWSPort();
        return port.agregarProgramaFonasa(programa);
    }

    private static Object cargarProgramaFonasaPorNumero(java.lang.String id) {
        service.ProgramaFonasaWSService service = new service.ProgramaFonasaWSService();
        service.ProgramaFonasaWS port = service.getProgramaFonasaWSPort();
        return port.cargarProgramaFonasaPorNumero(id);
    }

    private static boolean verificarProgramaFonasa(java.lang.String numero) {
        service.ProgramaFonasaWSService service = new service.ProgramaFonasaWSService();
        service.ProgramaFonasaWS port = service.getProgramaFonasaWSPort();
        return port.verificarProgramaFonasa(numero);
    }
}
